<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>Gestionar Servicios</title>
        <link href="estilo.css" type="text/css" rel="stylesheet"/>
    </h:head>
    <h:body styleClass="texto">
        <h:form id="form">
            <h:panelGrid columns="2" styleClass="texto" cellspacing="10" cellpadding="10">
                <p:panel>
                    <p:dataTable id="t" height="250" binding="#{servicioAdicional.tablaServicios}" value="#{servicioAdicional.listarServicios()}" var="ser" paginator="true" rows="7" emptyMessage="Sin Registros">
                        <p:column filterBy="#{ser.codigo}">
                            <f:facet name="header">
                                Código
                            </f:facet>
                            #{ser.codigo}
                        </p:column>
                        <p:column filterBy="#{ser.nombre}">
                            <f:facet name="header">
                                Nombre
                            </f:facet>
                            #{ser.nombre}
                        </p:column>
                        <p:column filterBy="#{ser.estado}">
                            <f:facet name="header">
                                Estado
                            </f:facet>
                            <center>
                                <h:selectOneMenu value="#{ser.estado}" onchange="submit()" valueChangeListener="#{servicioAdicional.desactivarServicio()}">
                                    <f:selectItem itemValue='a' itemLabel="Activo"/>
                                    <f:selectItem itemValue='i' itemLabel="Inactivo"/>
                                </h:selectOneMenu>
                            </center>
                        </p:column>
                        <p:column>
                            <p:commandButton action="#{servicioAdicional.consultarServicio()}" ajax="false" update="display" image="ui-icon ui-icon-search"/>
                        </p:column>
                        <f:facet name="footer">
                            <p:commandButton value="Nuevo" onclick="dialogoNuevo.show()" type="button"/>
                        </f:facet>
                    </p:dataTable>
                </p:panel>
                <p:panel header="Detalles">
                    <p:growl id="msju" showDetail="true" life="3000"/>
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Código:"/>
                        <p:inputText id="caCo" readonly="#{servicioAdicional.noPermitirEdicion}" value="#{servicioAdicional.servicio.codigo}" required="true" requiredMessage="Código es obligatorio"/>
                        <h:outputLabel value="Nombre:"/>
                        <p:inputText id="caNo" readonly="#{servicioAdicional.noPermitirEdicion}" value="#{servicioAdicional.servicio.nombre}" required="true" requiredMessage="Nombre es obligatorio"/>
                        <h:outputLabel value="Descripción:"/>
                        <h:inputTextarea id="arDe" readonly="#{servicioAdicional.noPermitirEdicion}" value="#{servicioAdicional.servicio.descripcion}" style="width: 100%; resize: none;"/>
                        <h:outputLabel value="Valor:"/>
                        <p:inputText id="caVa" readonly="#{servicioAdicional.noPermitirEdicion}" value="#{servicioAdicional.servicio.valor}" required="true" requiredMessage="Valor es obligatorio">
                            <f:convertNumber integerOnly="true"/>
                        </p:inputText>
                        <h:outputLabel value="Estado:"/>
                        <h:selectOneMenu id="coEs" disabled="#{servicioAdicional.noPermitirEdicion}" value="#{servicioAdicional.servicio.estado}">
                            <f:selectItem itemValue="Activ@" itemLabel="Activo"/>
                            <f:selectItem itemValue="Inactiv@" itemLabel="Inactivo"/>
                        </h:selectOneMenu>
                    </h:panelGrid>
                    <f:facet name="footer">
                        <center>
                            <h:panelGrid columns="3">
                                <p:commandButton id="modif" value="Modificar" actionListener="#{servicioAdicional.desbloquear()}" update="caCo, cao, arDe, caVa, modif, coEs, msju"/>
                                <p:commandButton value="Guardar" actionListener="#{servicioAdicional.actualizarServicio()}" update="msj" ajax="update"/> 
                            </h:panelGrid>
                        </center>
                    </f:facet>
                </p:panel>   
            </h:panelGrid>
        </h:form>
        <h:form>
            <p:dialog id="dlg" header="Nuevo Servicio Adicional" modal="true" widgetVar="dialogoNuevo" width="350" resizable="false">
                <p:growl id="msj" showDetail="true" life="3000"/>
                <p:panel>
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Código:"/>
                        <p:inputText value="#{servicioAdicional.servicio.codigo}" required="true" requiredMessage="Código es obligatorio" />
                        <h:outputLabel value="Nombre:"/>
                        <p:inputText value="#{servicioAdicional.servicio.nombre}" required="true" requiredMessage="Nombre es obligatorio"/>
                        <h:outputLabel value="Descripción:"/>
                        <h:inputTextarea value="#{servicioAdicional.servicio.descripcion}" style="width: 100%; resize: none"/>
                        <h:outputLabel value="Valor:"/>
                        <p:inputText converter="#{servicioAdicional.servicio.valor}" value="#{servicioAdicional.servicio.valor}" required="true" requiredMessage="Valor es obligatorio">
                            <f:convertNumber integerOnly="true"/>
                        </p:inputText>
                        <h:outputLabel value="Estado:"/>
                        <h:selectOneMenu value="#{servicioAdicional.servicio.estado}">
                            <f:selectItem itemValue="Activ@" itemLabel="Activa"/>
                            <f:selectItem itemValue="Inactiv@" itemLabel="Inactiva"/>
                        </h:selectOneMenu>
                    </h:panelGrid>
                    <f:facet name="footer">
                        <center>
                            <p:commandButton value="Guardar" actionListener="#{servicioAdicional.crearServicio()}" oncomplete="handleComplete(xhr, status, args)" ajax="true" update="msj, t"/>
                            <p:commandButton value="Cancelar" onclick="dialogoNuevo.close()"/>
                        </center>
                    </f:facet>
                </p:panel>
            </p:dialog>
            <script type="text/javascript">
                    function handleComplete(xhr, status, args) {
                            if(!args.validationFailed) {
                                    dialogoNuevo.hide();      
                            } 
                    }
            </script>
        </h:form>
    </h:body>
</html>